package db;

import redis.clients.jedis.Jedis;

/**
 * Redis数据库操作方法封装
 */
public class RedisQuery {

    /**
     * 添加数据,相同key会覆盖数据，所以也相当于改
     */
    public static void set(String key, String value) {
        Jedis jedis = JedisDBPool.getConnectJedis();
        jedis.set(key, value);
        //Jedis3.0版本后jedisPool.returnResource(final Jedis resource)方法已被弃用，用jedis.close()代替 来归还连接
        jedis.close();
    }


    /**
     * 添加数据，带超时时间，超时自动销毁
     */
    public static void setex(String key, String value, int seconds){
        Jedis jedis = JedisDBPool.getConnectJedis();
        jedis.setex(key, seconds, value);
        jedis.close();
    }

    /**
     * 根据key删除数据
     */
    public static void deleteByKey(String key) {
        Jedis jedis = JedisDBPool.getConnectJedis();
        jedis.del(key);
        jedis.close();
    }

    /**
     * 根据key查询
     */
    public static String getByKey(String key) {
        Jedis jedis = JedisDBPool.getConnectJedis();
        String value = jedis.get(key);
        jedis.close();
        return value;
    }

    /**
     * 查询某条数据是否存在
     */
    public static boolean isExist(String key){
        Jedis jedis = JedisDBPool.getConnectJedis();
        boolean exist = jedis.exists(key);
        jedis.close();
        return exist;
    }

    public final static String DICTIONARY_PATH = "Dictionary";

    public static void zAddToDictionary(String wordStr, int score) {
        Jedis jedis = JedisDBPool.getConnectJedis();
        jedis.zadd(DICTIONARY_PATH,score, wordStr);
        jedis.close();
    }

}
